package com.itfenghuang.day04;

public class A02多态下java {
//    1.转型
//            向上转型:小转大,自动转
//            向下转型:大转小,强制转换
//    2.instanceof   关键字
//                格式:  对象名  instanceof  数据类型
//                    判断左边的对象是否是右边的类型
//                    p  instanceof  Student   判断p是不是一个学生
//                    如果p是一个学生那么输出true    如果不是就输出false

    public static void main(String[] args) {
        Person p=new Student();
        p.show();
//        int a = 10;
//        int-->long   类型转换
//        小转大,自动转
//        long b=a;
//        强制类型转换  大转小
//        byte c = (byte) a;
        Student stu = (Student) p;
        stu.goShcool();
//        Teacher t = (Teacher) p;   向下转型可能存在的风险   出现类转换异常
                if (p instanceof Teacher){
                    //强转
                    Teacher t = (Teacher) p;
                }else if (p instanceof Student){

        }
    }
}
class Person{
    public void show(){
        System.out.println("哈哈");
    }
}
class Student extends Person{
    @Override
    public void show() {
        System.out.println("不约而同");
    }

    public void goShcool(){
        System.out.println("学生上学");
    }
}
class Teacher extends Person{
    @Override
    public void show() {
        System.out.println("老师");
    }
}